package ar.uba.fi.algo3.tp3.modelo;

public class PuntoCalculo {

    private int x;
    private int y;
    private int contador;

    public PuntoCalculo(int x, int y) {
        this.x = x;
        this.y = y;
        this.contador = 0;
    }

    public PuntoCalculo(int x, int y, int contadorInicial) {
        this.x = x;
        this.y = y;
        this.contador = contadorInicial;
    }

    public int getX() {
        return x;
    }

    public int getY() {
        return y;
    }

    public boolean esVecinoA(PuntoCalculo pc) {
        boolean vecinoEnX = Math.abs(pc.x - x) <= 30;
        boolean vecinoEnY = Math.abs(pc.y - y) <= 30;
        return (vecinoEnX && pc.y == y) || (vecinoEnY && pc.x == x);
    }

    public void incContador() {
        this.contador++;
    }

    public int getContador() {
        return this.contador;
    }

    @Override
    public String toString() {
        return "x: " + x + " - y: " + y + " - cont: " + contador;
    }


    @Override
    public boolean equals(Object obj) {
        PuntoCalculo p = (PuntoCalculo) obj;
        return (p.getX() == x && p.getY() == y);
    }

    @Override
    public int hashCode() {
        int hash = 3;
        hash = 67 * hash + this.x;
        hash = 67 * hash + this.y;
        return hash;
    }
}
